www.gusucode.com > XbPhp开发框架 v1.4.5PHP源码程序 > XbPhp开发框架 v1.4.5/xbphp/xbphp/XbPhp/model/BaseModel.php
<?php /** * 基类模型 * @author wave */ class BaseModel { //错误信息 public $error; //校验的规则 protected $rules = array(); //标识判断是否校验成功 protected $flag = true; //获取数据 public $data; protected function getData() { if(!empty($_POST)) { $this->data =& $_POST; } if(!empty($_GET)) { $this->data =& $_GET; } } /** * 校验规则 * @return Array * @author wave */ public function rules() { return array(); } /** * 验证数据 * @return boolean * @author wave */ public function validate() { $this->getData(); $this->rules = $this->rules(); if(!empty($this->rules)) { $this->erg(); } return empty($this->error) ? true : false; } /** * 进行遍历校验 * @author wave */ protected function erg() { foreach($this->rules as $val) { if(isset($val['pattern']) && !empty($val['pattern'])) { if(!empty($this->data)) { if(!preg_match($val['pattern'], $this->data[$val['0']])) { $this->flag = false; $this->error = $val['msg']; break; } } }else { $this->flag = $this->isType($val); if(!$this->flag) { $this->error = $val['msg']; break; } } } } /** * 校验数据类型 * @param Array $val 传入的校验数组 * @return boolean * @author wave */ protected function isType($val) { switch ($val['type']) { case 'int': $flag = is_int($val['0']) ? true : false; break; case 'float': $flag = is_float($val['0']) ? true : false; break; case 'string': $flag = is_string($val['0']) ? true : false; break; case 'num': $flag = is_numeric($val['0']) ? true : false; break; } return $flag; } }